Skip to content

Conversation

@kornkv
Copy link
Contributor

@kornkv kornkv commented Dec 8, 2025

draft of FASTQ_REMOVE_ADAPTERS_AND_MERGE subworkflow with tests

mirpedrol and others added 25 commits December 8, 2025 17:00
* add ontologies to tcoffee regressive

* add ontologies to upp align
* Add module pbmarkdup

* Fix linting

* Update path to test data

* Update with code review (--dup-file, log, check file name collisions)

* Fix linting

* Update path to test data

* Update modules/nf-core/pbmarkdup/meta.yml

* Fix linting
* Enable complex contrast strings

* Update docker image

* Add test case with limma contrast string

* Format changes and add test with shrinkage
* Add deepvariant optional html

* update snapshot

* Update modules/nf-core/deepvariant/rundeepvariant/main.nf

Co-authored-by: Ramprasad Neethiraj <[email protected]>

* trigger html generation

* revert config change

---------

Co-authored-by: Ramprasad Neethiraj <[email protected]>
HISAT2 uses .ht2l extension instead of .ht2 for large genomes.
Updated index detection to match both extensions.

Related to nf-core/rnaseq#1643

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <[email protected]>
…erministic (#9489)

* Sort file listing so "first" file is deterministic

* Declare closure parameter per strict syntax

Co-authored-by: Matthias Hörtenhuber <[email protected]>

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>
* sambamba add region bed input

* fix linting

* fix linting

* Apply suggestions from code review

Co-authored-by: Felix Lenner <[email protected]>

---------

Co-authored-by: Felix Lenner <[email protected]>
* fix fasta_index_methylseq and fastq_align_dedup workflows for clarity and consistency

- Updated variable names in fasta_index_methylseq to use 'channel' instead of 'Channel' for consistency.
- Renamed UNTAR to UNTAR_BISMARK and UNTAR_BWAMETH for clarity in fasta_index_methylseq.
- Enhanced comments and descriptions in meta.yml files for better understanding of input and output structures.
- Adjusted test cases in fastq_align_dedup workflows to reflect changes in input structure from single-end to paired-end.
- Updated version numbers in test snapshots to reflect recent changes.

* fix: pre-commit lint fixes
* Update glimpse

* Update chunk

* Update concordance

* Revert changes

* Fix glimpse test

* Fix glimpse

* Fix glimpse2 tests

* Update sbwf

* Remove old snapshots

* Update glimpse

* Update modules/nf-core/glimpse2/concordance/tests/main.nf.test

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Update test

---------

Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Matthias Hörtenhuber <[email protected]>
)

* fix order

* add container section

* simplify schema

* require https for singluarity
* update and add topics

* add new topics structure

* add stub test and capture version in snapshot

* update to 9.14.0

* fix singularity be setting cache_dir

* fix stub

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>
* fix stub version

* stray module
- Add missing gene_id_col parameter definition (defaults to 'gene_id')
- Include gene IDs as first column in all results tables using configurable column name
- Only write output files when there are significant results to avoid empty files
- Mark all results TSV outputs as optional since they're conditionally created
- Update test to use buffering results instead of empty mRNA_abundance results
- Update test snapshots with new file formats including gene_id column

This ensures anota2seq results are consistent with other modules and include
gene identifiers for downstream analysis, while gracefully handling cases
where no genes pass significance thresholds.

Co-authored-by: Sebastian Uhrig <[email protected]>
#9516)

fix(decoupler): reorder imports and ensure environment variables are set before importing modules
Add strdrop build
…9201)

* 🔧 update image and bioconda container to latest version

* ✅ update test snapshots

* 🐛 fix display of version of vuegen

- had no command line interface option to display version, see
Multiomics-Analytics-Group/vuegen#167

* 🎨 display versions.yml content in snapshots

* 🔧 add Dockerfile to install lastet PyPI vuegen version

- does not pass hadolint(er) as of now

* 🚧 add wave containers

* 🔥 remove README again

* 🔥 remove Dockerfile again

* 🚧 try to follow Mahesh's advice

* 🐛 add explicit cache directory

* 🔧 bump to Python 3.12 and remove channel prefix

* 🔧 specify singularity image with https

... as specified in the docs:
https://nf-co.re/docs/tutorials/nf-core_components/using_seqera_containers

* 🚧 set user specified R libarary folder

* ⏪ make docker and conda work again (using nf-core 3.5.1)

* 🔧 switch again to custom docker image instead of wave

- wave leads to too many custom installation issues

* 🐛 try to add font package

* 🔥 remove code moved to image

- singularity runs in devcontainer

* ⏪ add back conda quarto flag

* 🎨 remove trailing whitespace

* 🎨 format again

* 🎨 hopefully the last trailing whitespace

* 📝 document the build process and why the container is needed

* Update image with nf-core one

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Update container name

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Apply suggestion from @mashehu

* Apply suggestion from @mashehu

---------

Co-authored-by: Famke Bäuerle <[email protected]>
Co-authored-by: Matthias Hörtenhuber <[email protected]>
* Update semibin2 module

* Update snapshot

* Remove unneeded snapshot section

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>
@pinin4fjords
Copy link
Member

Note for reviewers: setup-nextflow deletion is intentional cleanup

The diff shows deletion of a setup-nextflow submodule entry - this is correct and beneficial, not an error.

Background

The removal commit by @vagkaratzas (9239334ea - "remove unused folder") correctly cleans this up.


take:
reads // channel: [ val(meta), [ reads ] ]
skip_trimmomatic // boolean
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You didn't leave any notes in the PR description, so I'm not sure. Is it your intention that folks would want to run multiple trimming methods, which is why you've avoided a simpler trimmer param or similar, as fastq_qc_trim_filter_setstrandedness does (for example)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly, the idea is to select 1 or more adapter removal (and/or merge) tools. This subworkflow is going to be part of the mega fastq QC/preprocessing subworkflow described here.
Potentially, with pipeline chaining, this could one day become its own standalone pipeline that would be executed before all fastq short read pipelines.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After discussing with @jfy133, it seems this subworkflow will act as a plug-in interface, that will hide the complexity of the underlying tools from the user, while letting them pick their favourite adapter removal tool of choice.
i.e., one selected tool, and not chaining tools.
Updating accordingly..

skip_cutadapt // boolean
skip_trimgalore // boolean
skip_bbduk // boolean
contaminants // channel: [ reads ] // fasta, adapters to remove
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this benefit from metas? I think we normally require those these days (not all of the modules/ subworkflows have caught up)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point in time, I just sourced the inputs in the format that they are being used by the included modules. Will update accordingly when and if the module inputs are updated at module side ;)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My instinct was with Jon, but fair enough. We could try and push pipeline develoeprs to update teh original module by requiring meta here (even if we drop it in the subworkflow)

fastp_save_trimmed_fail // boolean
save_merged // boolean
skip_adapterremoval // boolean
text_adapters // channel: [ txt ] // adapters to remove, in adapterremoval text format
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, think this could do with a meta

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

Copy link
Member

@pinin4fjords pinin4fjords left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder a bit how it fits into the landscape of other trimming/ preprocessing workflows, but nothing particularly objectionable

@vagkaratzas
Copy link
Contributor

I wonder a bit how it fits into the landscape of other trimming/ preprocessing workflows, but nothing particularly objectionable

Thanks! I'll wait for @jfy133 for a final review pass and will then merge.
Stay tuned for the following updates :D

Copy link
Member

@jfy133 jfy133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments - @vagkaratzas and I spoke on Slack in more detail about what I had in my mind when I suggested this subworkflow vs what is implemented here.

I can see why Jon was a bit confused about the purpose of the subworkflow, hopefully it'll be clearer based on the refactor we discussed on Slack

if (!skip_cutadapt) {
CUTADAPT( ch_reads )
ch_reads = CUTADAPT.out.reads
ch_multiqc_files = ch_multiqc_files.mix(CUTADAPT.out.log)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing cut adapt versions mixing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't do that for modules that have been updated to the new version output syntax ;)
As in, it's kinda impossible without the pieces of code at the end of the new pipeline's template.
@maxulysse for back-up!

ch_reads = TRIMGALORE.out.reads
ch_discarded_reads = ch_discarded_reads.mix(TRIMGALORE.out.unpaired)
ch_trimgalore_log = TRIMGALORE.out.log
ch_trimgalore_html = TRIMGALORE.out.html
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing timmomatic versions mixing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

)
ch_discarded_reads = ch_discarded_reads.mix(ADAPTERREMOVAL_SE.out.discarded, ADAPTERREMOVAL_PE.out.discarded)
ch_adapterremoval_paired_interleaved = ADAPTERREMOVAL_SE.out.paired_interleaved.mix(ADAPTERREMOVAL_PE.out.paired_interleaved)
ch_versions = ch_versions.mix(ADAPTERREMOVAL_SE.out.versions.first(), ADAPTERREMOVAL_PE.out.versions.first())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this work if only one of the two modules are run? I would rather put a dedicated mix after each module invocation independently

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, seemed to be working fine during tests

}

if (!skip_adapterremoval) {
ch_adapterremoval_in = ch_reads
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another Question here just to double check, do all the other tools not care how they receive their data (i.e., can handle easily both)?

The reason why we have it separate for ADAPTEREMOVAL is more about the mkixing the output channels more than any thing else

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep! that's how it seems on the tests where nothing is skipped for both single and paired ends

@vagkaratzas vagkaratzas requested a review from jfy133 December 19, 2025 12:10
Copy link
Member

@jfy133 jfy133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content review, looking much nicer now! Main issue is AdapterRemoval

ch_report = channel.empty() // from trimmomatic, trimgalore, fastp
ch_versions = channel.empty()
ch_multiqc_files = channel.empty() // from trimmomatic, cutadapt, bbduk, leehom, fastp, adapterremoval

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a validation check here to make sure whatever is given to val_adapter_tool is recognised by the subworkflow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is this else condition at the end:

else {
        error('Please choose one of the available adapter removal and merging tools: ["trimmomatic", "cutadapt", "trimgalore", "bbduk", "leehom", "fastp", "adapterremoval"]')
    }

Is this not enough?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeah, missed that 😅

I personally would put it separately right at the beginning as I find it easier to 'read' and know the rest of subwf won't start until it passes. But that's just personal prefereence, this still works.

TRIMMOMATIC( ch_input_reads )

ch_processed_reads = TRIMMOMATIC.out.trimmed_reads
ch_discarded_reads = ch_discarded_reads.mix(TRIMMOMATIC.out.unpaired_reads.transpose()) // .transpose() because paired reads have 2 unpaired files in an array
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by 2 unpaired files in an array? Do they represent different 'discarded' files? Or the discarded reads from each of the R1/R2? In the latter case does ti makes sense to separated them?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the latter (rephrased the comment a bit). leehom does something similar I think a bit further down the code. I would keep as it is and let the user handle it differently in the pipeline level if they wish.

Comment on lines 103 to 111
ch_processed_reads = ADAPTERREMOVAL_SE.out.collapsed
.mix(
ADAPTERREMOVAL_PE.out.collapsed,
ADAPTERREMOVAL_SE.out.collapsed_truncated,
ADAPTERREMOVAL_PE.out.collapsed_truncated
)
} else {
ch_processed_reads = ADAPTERREMOVAL_SE.out.singles_truncated.mix(ADAPTERREMOVAL_PE.out.paired_truncated)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check against

https://github.com/nf-core/eager/blob/52da7b420a47b3703cc1bf12941409ad9ab61455/subworkflows/local/preprocessing_adapterremoval.nf#L38-L92

Preparing the AdapterRemoval reads is a little more complicated than just mixing, and you appear to have a mistake (there is no ADAPTERREMOVAL_SE.out.collapsed_truncated -> collapsed here means merged, but you don't get merged SE data).

What I would recommend is to offer as 'single' output:

  • SE (singles_truncated)
  • Unmerged Pairs (paird_truncated)
  • Merged pairs (collapsed + collapsed_truncated)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied over from eager; is this correct/needed though:
ADAPTERREMOVAL_PAIRED.out.singles_truncated,
?

@vagkaratzas vagkaratzas requested a review from jfy133 January 12, 2026 14:51
Copy link
Member

@jfy133 jfy133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove that oneline then I think you're good to go!

@vagkaratzas vagkaratzas added this pull request to the merge queue Jan 14, 2026
Merged via the queue into master with commit de6f579 Jan 14, 2026
67 checks passed
@vagkaratzas vagkaratzas deleted the fastq_remove_adapters_and_merge branch January 14, 2026 14:32
vagkaratzas added a commit that referenced this pull request Jan 14, 2026
…9521)

* Add draft of FASTQ_REMOVE_ADAPTERS_AND_MERGE subworkflow with tests

* Add ontologies to tcoffee/regressive and upp/align modules (#9484)

* add ontologies to tcoffee regressive

* add ontologies to upp align

* Add module PBMARKDUP (#9457)

* Add module pbmarkdup

* Fix linting

* Update path to test data

* Update with code review (--dup-file, log, check file name collisions)

* Fix linting

* Update path to test data

* Update modules/nf-core/pbmarkdup/meta.yml

* Fix linting

* Enable complex contrast strings in DESeq2 (#9473)

* Enable complex contrast strings

* Update docker image

* Add test case with limma contrast string

* Format changes and add test with shrinkage

* Declare deepvariant optional html output (#9469)

* Add deepvariant optional html

* update snapshot

* Update modules/nf-core/deepvariant/rundeepvariant/main.nf

Co-authored-by: Ramprasad Neethiraj <[email protected]>

* trigger html generation

* revert config change

---------

Co-authored-by: Ramprasad Neethiraj <[email protected]>

* utils_nfcore_pipeline: fix small lang server error (#9492)

fix small lang server error

* Fix hisat2/align to support large genome indices (.ht2l) (#9493)

HISAT2 uses .ht2l extension instead of .ht2 for large genomes.
Updated index detection to match both extensions.

Related to nf-core/rnaseq#1643

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <[email protected]>

* Update shinyngs modules to latest release (#9488)

* Update semibin/singleeasybin environment (#9495)

* add new ontology term to tcoffee align (#9497)

* tcoffee_extractfrompdb test: sort file listing so "first" file is deterministic (#9489)

* Sort file listing so "first" file is deterministic

* Declare closure parameter per strict syntax

Co-authored-by: Matthias Hörtenhuber <[email protected]>

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>

* Sambamba depth add region bed input (#9498)

* sambamba add region bed input

* fix linting

* fix linting

* Apply suggestions from code review

Co-authored-by: Felix Lenner <[email protected]>

---------

Co-authored-by: Felix Lenner <[email protected]>

* fix fasta_index_methylseq and fastq_align_dedup workflows (#9496)

* fix fasta_index_methylseq and fastq_align_dedup workflows for clarity and consistency

- Updated variable names in fasta_index_methylseq to use 'channel' instead of 'Channel' for consistency.
- Renamed UNTAR to UNTAR_BISMARK and UNTAR_BWAMETH for clarity in fasta_index_methylseq.
- Enhanced comments and descriptions in meta.yml files for better understanding of input and output structures.
- Adjusted test cases in fastq_align_dedup workflows to reflect changes in input structure from single-end to paired-end.
- Updated version numbers in test snapshots to reflect recent changes.

* fix: pre-commit lint fixes

* Update test files for Glimpse (#9467)

* Update glimpse

* Update chunk

* Update concordance

* Revert changes

* Fix glimpse test

* Fix glimpse

* Fix glimpse2 tests

* Update sbwf

* Remove old snapshots

* Update glimpse

* Update modules/nf-core/glimpse2/concordance/tests/main.nf.test

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Update test

---------

Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Matthias Hörtenhuber <[email protected]>

* meta.yml schema: add `containers` section, fix order and simplify (#9503)

* fix order

* add container section

* simplify schema

* require https for singluarity

* update and add topics to snakemake module (#9454)

* update and add topics

* add new topics structure

* add stub test and capture version in snapshot

* update to 9.14.0

* fix singularity be setting cache_dir

* fix stub

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>

* fix sambamba depth stub version (#9509)

* fix stub version

* stray module

* anota2seq: wrong variable name for batch assignment (#9511)

rename variable

* fix(anota2seq): add gene IDs and handle empty results (#9510)

- Add missing gene_id_col parameter definition (defaults to 'gene_id')
- Include gene IDs as first column in all results tables using configurable column name
- Only write output files when there are significant results to avoid empty files
- Mark all results TSV outputs as optional since they're conditionally created
- Update test to use buffering results instead of empty mRNA_abundance results
- Update test snapshots with new file formats including gene_id column

This ensures anota2seq results are consistent with other modules and include
gene identifiers for downstream analysis, while gracefully handling cases
where no genes pass significance thresholds.

Co-authored-by: Sebastian Uhrig <[email protected]>

* fix(decoupler): reorder imports and ensure environment variables are … (#9516)

fix(decoupler): reorder imports and ensure environment variables are set before importing modules

* Add strdrop/build (#9512)

Add strdrop build

* chore(deps): update infrastructural dependencies

* 🔧 update image and bioconda container for VueGen to latest version (#9201)

* 🔧 update image and bioconda container to latest version

* ✅ update test snapshots

* 🐛 fix display of version of vuegen

- had no command line interface option to display version, see
Multiomics-Analytics-Group/vuegen#167

* 🎨 display versions.yml content in snapshots

* 🔧 add Dockerfile to install lastet PyPI vuegen version

- does not pass hadolint(er) as of now

* 🚧 add wave containers

* 🔥 remove README again

* 🔥 remove Dockerfile again

* 🚧 try to follow Mahesh's advice

* 🐛 add explicit cache directory

* 🔧 bump to Python 3.12 and remove channel prefix

* 🔧 specify singularity image with https

... as specified in the docs:
https://nf-co.re/docs/tutorials/nf-core_components/using_seqera_containers

* 🚧 set user specified R libarary folder

* ⏪ make docker and conda work again (using nf-core 3.5.1)

* 🔧 switch again to custom docker image instead of wave

- wave leads to too many custom installation issues

* 🐛 try to add font package

* 🔥 remove code moved to image

- singularity runs in devcontainer

* ⏪ add back conda quarto flag

* 🎨 remove trailing whitespace

* 🎨 format again

* 🎨 hopefully the last trailing whitespace

* 📝 document the build process and why the container is needed

* Update image with nf-core one

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Update container name

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Apply suggestion from @mashehu

* Apply suggestion from @mashehu

---------

Co-authored-by: Famke Bäuerle <[email protected]>
Co-authored-by: Matthias Hörtenhuber <[email protected]>

* qsv/cat: bump version (#9518)

Bump qsv

* Update haplogrep3 recipe to use topics (#9523)

Co-authored-by: nf-core-bot <[email protected]>

* semibin/singleeasybin: bump version + migrate to topics (#9517)

* Update semibin2 module

* Update snapshot

* Remove unneeded snapshot section

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* remove unused folder

* rename

* trimmomatic revisit

* cutadapt revisit

* trimgalore revisit

* bbduk revisit

* fastp revisit

* adapterremoval revisit

* leehom checkpoint (#9534)

* leehom checkpoint

* debugged with transpose and proper collect on nf-test

* leehom change order

* remove ngmerge because cant deal with /1 /2 paired reads

* paired end no merge test

* New module: clusty (#9533)

* new module clusty

* patch links docs

* fix prettier

* remove non-mandatory input 'algorithm'

* also patch stub input

* Bump TRGT to 4.1.0 (#9514)

* Bump TRGT to 4.1.0

* Switch to topics

* Update modules/nf-core/trgt/genotype/tests/main.nf.test

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* remove duplicate versions

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* fix missing quotes (#9535)

* Fix dream to show more than 10 results (#9507)

* fix: dream to show more than 10 results

* test: update snapshots

* test: update snapshots

* feat: add round digits option and update snapshots again

* fix: improve code formatting and update test snapshots

* Fix tests and update snapshots

* Update snapshot for `abundance_differential_filter` subworkflow

* Fix tests with unstable content

* Fix unstable files in test for `abundance_differential_filter` subworkflow

---------

Co-authored-by: Anabella Trigila <[email protected]>

* rename to more appropriate fastq_preprocess_seqkit (#9537)

* New module - TD2 (added modules for td2.longorfs & td2.predict) (#9475)

* added modules for td2.longorfs & td2.predict

* changes to version handling, updated snaps, and tests - resolving comments

* added topics section in meta.yml

* fix topics section in meta.yml

* Update modules/nf-core/td2/longorfs/main.nf

Co-authored-by: Simon Pearce <[email protected]>

* Update modules/nf-core/td2/longorfs/meta.yml

Co-authored-by: Simon Pearce <[email protected]>

* Update modules/nf-core/td2/predict/main.nf

Co-authored-by: Simon Pearce <[email protected]>

* Update modules/nf-core/td2/longorfs/meta.yml

Co-authored-by: Simon Pearce <[email protected]>

* Update main.nf - stub run

* Update meta.yml

* resolving comments

* updated emad ontologies

* Update modules/nf-core/td2/predict/tests/main.nf.test.snap

* Update modules/nf-core/td2/predict/main.nf

* Update modules/nf-core/td2/longorfs/tests/main.nf.test.snap

* Update modules/nf-core/td2/longorfs/main.nf

* Update modules/nf-core/td2/predict/tests/main.nf.test.snap

* Update modules/nf-core/td2/longorfs/tests/main.nf.test.snap

---------

Co-authored-by: Simon Pearce <[email protected]>

* Bump ichorCNA package build in ichorcna/createpon and ichorcna/run (#9531)

* Bump ichorCNA package build in ichorcna/createpon and ichorcna/run

At the moment, creating a PoN without data on chromosome X is bound to
fail due to a bug in
ichorCNA(GavinHaLab/ichorCNA#26).

It is unclear when a new version will be out, so I have patched the
current bioconda package
(bioconda/bioconda-recipes#61045) and built
new container images, which I want to update to in this PR.

* Update some md5sums

* Update test snapshot

* Update test snapshot

* RSeQC split_bam.py module implementation (#9536)

* RSeQC split_bam.py module implementation

Syntax edit

Refractored version channel to topic

Cleanup

* Update modules/nf-core/rseqc/splitbam/main.nf

Co-authored-by: Felix Lenner <[email protected]>

* Update modules/nf-core/rseqc/splitbam/tests/main.nf.test

Co-authored-by: Felix Lenner <[email protected]>

* Update modules/nf-core/rseqc/splitbam/tests/main.nf.test

Co-authored-by: Felix Lenner <[email protected]>

* Updated snapshot

---------

Co-authored-by: Felix Lenner <[email protected]>
Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* remove topics from multiqc (#9530)

* remove topics from multiqc

* versions_multiqc -> versions

* Apply suggestion from @nvnieuwk

* fix meta.yml after merge

* bump to MultiQC version 1.33 (#9538)

* bump to 1.33

* update snapshots

---------

Co-authored-by: Matthias Hörtenhuber <[email protected]>

* Add strdrop/call (#9513)

* Add strdrop build

* Add strdrop/call

* remove tag

* fix wrong parameter name in error

* align

* remove duplicate versions

* snaps

* figure out why snapshots are not stable

* different versions of trgt used in setup

* Bump TRGT to 5.0.0 (#9541)

5.0.0

* Channel -> channel in some subwfs (#9542)

Channel -> channel

* Migrate cat/fastq to topic channel (#9543)

* Migrate cat/fastq to topic channel

* Remove out.versions in related subworkflows

* Update snapshots (again)

* Add module picard/collectvariantcallingmetrics (#9502)

* Add module picard/collectvariantcallingmetrics

* Run prettier

* Fix format

* Make one input  tuple

* Change test input structure

* Add md5 checksum

* Update snapshot

* Update meta.yml

* Support multithreading

* Remove TODO

Co-authored-by: Famke Bäuerle <[email protected]>

---------

Co-authored-by: Famke Bäuerle <[email protected]>

* fix tabix/tabix stub (#9544)

* fix tabix stub

* bump max shards to 16

* Unify msa modules (#9539)

* add mafft_align subworkflow to prepare channels for mafft/align like all other msa modules

* default output format fasta for tcoffee align and regressive to match other msa modules

* [automated] Fix linting with Prettier

* Update subworkflows/nf-core/mafft_align/main.nf

Co-authored-by: Jose Espinosa-Carrasco <[email protected]>

---------

Co-authored-by: nf-core-bot <[email protected]>
Co-authored-by: Jose Espinosa-Carrasco <[email protected]>

* Fix missing version from subworkflow snapshot (#9548)

* New module: whatshap/phase (#9431)

* add whatshap phase module

* change the vcf-specific test

* change test

* add versions

* remove snapshot

* update snapshot

* Update modules/nf-core/whatshap/phase/tests/main.nf.test

Co-authored-by: Famke Bäuerle <[email protected]>

* rm unused args

* add snapshot

* add ontologies

* update the snapshot

* add versions to snapshot

* fix stub issues

* update the test and snap

* fix format with "nextflow lint"

* fix hardcoded name and file name ambiguity problem

---------

Co-authored-by: Famke Bäuerle <[email protected]>

* Bump version cat/cat to pigz 2.8 & rewrite nf-test & topic channel (#9549)

* bump version cat/cat

* reinclude cat tags for other modules

* patch test name & meta.yml

* Update main.nf.test

* plastid metagene_generate, make_wiggle, psite (#9482)

* plastid metagene_generate, make_wiggle, psite

* pair BAM and BAI files

* pair bam and p_offsets

* omit optional arguments

* metagene generate accepts various input formats

* add meta

* do not remove variable headers from output files

* warning about hard-coded version

* make lint happy

* make lint happy #2

* plastid/make_wiggle: nf-core standards compliance

- Add mapping_rule val input (enum: fiveprime, threeprime, center, fiveprime_variable)
- Move output_format to ext.args (optional arg per nf-core standards)
- Add validation: error if p_offsets missing with fiveprime_variable
- Remove hardcoded --fiveprime_variable
- Update meta.yml with mapping_rule input and enum
- Update tests with mapping_rule input

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* adapt meta.yml to new parameters

* plastid: consolidate test snapshots and fix reproducibility

- Consolidate multiple snapshot assertions into single snapshots per test
- Remove snapshots of empty stub files (just check existence)
- Exclude non-reproducible PNG from psite snapshots (matplotlib drift)
- Format metagene_generate command across multiple lines

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* plastid/make_wiggle: remove tracks from snapshot

Wig files have non-reproducible md5sums across environments.
Content is already validated via getText().contains('track').

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* plastid/psite: remove non-reproducible outputs from snapshot

metagene_profiles.txt and p_offsets.txt have non-reproducible md5sums.
Content is already validated via getText().contains() checks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>

---------

Co-authored-by: Jonathan Manning <[email protected]>
Co-authored-by: Claude Opus 4.5 <[email protected]>

* Add index and threads to trgt/merge (#9545)

* Fix test path modification (#9465)

* Update bcftools

* Update bcftools csq

* Update somalier ancestry

* Update bcftools pluginfilltags

* Update cnvnator

* Update snap cnvnator

* Fix extract somalier sbwf

* Update snapshot

* Update md5

* Fix linting

* Upd snapshot

* Upd snapshot

* Upd snapshot

* Upd snapshot

---------

Co-authored-by: LouisLeNezet <[email protected]>

* Update xenium ranger modules and subworkflows (#9525)

* update xeniumranger modules to use xeniumranger v4.0

* update xeniumranger modules to use xeniumranger v4.0

* fix: update xeniumranger import-segmentation tests and logic

* update test compute resource spec to follow 10x website

* remove extra file

* fix: apply topic channels and update meta.yml structure for xeniumranger

* fix: update meta.yml structure to satisfy schema

* fix: align meta.yml with topic versions blog post example

* fix: update meta.yml topics structure to satisfy schema validation

* fix: automated lint fix for meta.yml topics structure

* fix: use standard container definition syntax

* fix: apply topic versions to rename module

* fix: apply topic versions and meta.yml schema fixes for xeniumranger modules and subworkflows

* untrack files

* remove test config files for github workflow

* remove config def in tests

* remove config def in tests

* Update tests and snapshots for xeniumranger modules and subworkflows

* remove subworkflows for xeniumranger

* remove subworkflows for xeniumranger

* fix: update test template

* fix relabel meta.yml

* make prek hppy

* make prek hppy

* make prek hppy

* update import-segmentation doc

* update import-segmentation doc

* fix oncologies

* Fix snapshot file key order for rename and resegment modules

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* comment out config

* fix: make prek happy

* fix typo

* remove test files

---------

Co-authored-by: Dongze He <[email protected]>
Co-authored-by: Sameesh Kher <[email protected]>
Co-authored-by: Copilot <[email protected]>

* Version update: Modkit repair, callmods and bedmethyltobigwig (#9547)

* update to v0.6

* update to v0.6

* update to v0.6

* update yml

* update to v0.6

* update snapshot

* update snapshot

---------

Co-authored-by: ra25wog <[email protected]>

* Update `GLIMPSE` sbwf (#9524)

* Update glimpse sbwf

* Update test

* Update filter operation

* Update subworkflows/nf-core/vcf_impute_glimpse/main.nf

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Update subworkflows/nf-core/vcf_impute_glimpse/main.nf

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Update subworkflows/nf-core/vcf_impute_glimpse/main.nf

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Update subworkflows/nf-core/vcf_impute_glimpse/main.nf

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Update snapshot

---------

Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Add quilt imputation subworkflow (#9443)

* Add sbwf quilt

* Fix tags

* Update meta

* Use modules repo files

* Update glimpse2 imputation subworkflow (#9434)

* Update glimpse2 sbwf

* Update test

* Update subworkflows/nf-core/bam_vcf_impute_glimpse2/main.nf

Co-authored-by: Jonathan Manning <[email protected]>

* Update subworkflows/nf-core/bam_vcf_impute_glimpse2/tests/main.nf.test

Co-authored-by: Jonathan Manning <[email protected]>

* Add deprecation

* Change ifEmpty

---------

Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Jonathan Manning <[email protected]>

* Add `BEAGLE5` imputation subworkflow (#9550)

* Update glimpse2 sbwf

* Update test

* Add region to beagle5

* Add subworkflow

* Fix linting

* Fix linting

* Fix linting

* Update subworkflows/nf-core/vcf_impute_beagle5/main.nf

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Add comment

* Update grouping and test

* Remove tag

* Revert change glimpse2 reference

* Revert change glimpse2 sbwf

* Revert change glimpse2 sbwf

* Revert change glimpse2 sbwf

---------

Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Nicolas Vannieuwkerke <[email protected]>

* Add minimac4 imputation subworkfllow (#9451)

* Add vcf_impute_minimac4

* Update linting

* Update test

* Fix linting

* Update minimac4 sbwf

* Remove tag

* Remove tag

* Fix linting

* Add comment

* Update snapshot

* Fix nf-test

* Add BBSplit stats to MultiQC in fastq_qc_trim_filter_setstrandedness subworkflow (#9559)

Add BBSplit stats to MultiQC files in fastq_qc_trim_filter_setstrandedness

Pass BBSplit stats output to MultiQC for visualization of read binning
statistics. MultiQC 1.33+ includes support for parsing BBSplit stats.txt
files and displaying per-sample read distribution across reference genomes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <[email protected]>

* Update cutadapt (#9551)

* proper stub for gz and stub test added

* topic output syntax and tests update

* meta yml updated with topics and ontologies

* meta file curated

* version bump to latest

* update nf-tests properly

* adding self to maintainers

* removed Z flag as is deprecated after v4.10

* conda bug with different pre-built python version fixed

* added cutadapt to stub now that stub gz is properly created, and removed cutadapt versions, since it is now ported to topics

* single-end test with tool skips

* Standarize and alignment for all imputation and alignment modules (#9566)

* Standarize and alignment

* Fix glimpse2 sbwf test

* Fix test

* Add comment

* Update snapshot

---------

Co-authored-by: LouisLeNezet <[email protected]>

* Update Infrastructural dependencies

* Remove .view() (#9567)

* Bump strdrop to 0.3.1 (#9565)

* Remove unecessary tags (#9568)

* Remove .view()

* Remove unecessary tags

* Update trimgalore (#9570)

* testing solo trim-galore container, without adding extra cutadapt and pigz

* Syntax updates and topic version for manta modules (#9556)

* update manta germline

* topics convertinversion

* topics convertinversion

* topics manta/somatic

* topics manta/tumoronly

* Syntax updates and topics of jasminesv (#9554)

syntax updates and topics of jasminesv

* Update `Modkit pileup`  (#9553)

* update yaml

* update main.nf

* modified test runs

* update bedmethyltobigwig tests

* update main

* update snapshot

* fix linting

* update snapshots

* remove config

* update module_args

* [automated] Fix linting with Prettier

* changed name

* update main

---------

Co-authored-by: ra25wog <[email protected]>
Co-authored-by: nf-core-bot <[email protected]>

* Standarize and alignment for all imputation and alignment modules (#9566)

* Standarize and alignment

* Fix glimpse2 sbwf test

* Fix test

* Add comment

* Update snapshot

---------

Co-authored-by: LouisLeNezet <[email protected]>

* Update Infrastructural dependencies

* Remove .view() (#9567)

* Bump strdrop to 0.3.1 (#9565)

* Remove unecessary tags (#9568)

* Remove .view()

* Remove unecessary tags

* latest container, with cutadapt 5.2

* new output syntax, nf-tests updated, meta updated

* meta yml lint fixed

* trying to fix lint

* lint fix with nf-core tools 3.6.0dev

* removing TRIMGALORE versions output from the FASTQ_FASTQC_UMITOOLS_TRIMGALORE subworkflow

---------

Co-authored-by: Nicolas Vannieuwkerke <[email protected]>
Co-authored-by: Jinn <[email protected]>
Co-authored-by: ra25wog <[email protected]>
Co-authored-by: nf-core-bot <[email protected]>
Co-authored-by: Louis Le Nézet <[email protected]>
Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Felix Lenner <[email protected]>

* trimgalore output versions removed

* structure for subworkflow outputs in meta.yml file

* Update subworkflows/nf-core/fastq_removeadapters_merge/main.nf

Co-authored-by: James A. Fellows Yates <[email protected]>

* Update subworkflows/nf-core/fastq_removeadapters_merge/main.nf

Co-authored-by: James A. Fellows Yates <[email protected]>

* main and meta updated with new one-tool logic

* nf-tests updated

* var name change

* paired_interleaved dropped

* adapterremoval merge logic update similar to eager

* Update subworkflows/nf-core/fastq_removeadapters_merge/main.nf

Co-authored-by: James A. Fellows Yates <[email protected]>

* update snapshot

---------

Co-authored-by: Júlia Mir Pedrol <[email protected]>
Co-authored-by: Hanh Hoang <[email protected]>
Co-authored-by: Delfina Terradas <[email protected]>
Co-authored-by: Peter Pruisscher <[email protected]>
Co-authored-by: Ramprasad Neethiraj <[email protected]>
Co-authored-by: Matthias De Smet <[email protected]>
Co-authored-by: Jonathan Manning <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Diego Alvarez S. <[email protected]>
Co-authored-by: Nathan Weeks <[email protected]>
Co-authored-by: Matthias Hörtenhuber <[email protected]>
Co-authored-by: mashehu <[email protected]>
Co-authored-by: Felix Lenner <[email protected]>
Co-authored-by: Sateesh_Peri <[email protected]>
Co-authored-by: Louis Le Nézet <[email protected]>
Co-authored-by: LouisLeNezet <[email protected]>
Co-authored-by: Maxime U Garcia <[email protected]>
Co-authored-by: Sebastian Uhrig <[email protected]>
Co-authored-by: Anabella Trigila <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Henry Webel <[email protected]>
Co-authored-by: Famke Bäuerle <[email protected]>
Co-authored-by: nf-core-bot <[email protected]>
Co-authored-by: vagkaratzas <[email protected]>
Co-authored-by: Evangelos Karatzas <[email protected]>
Co-authored-by: Joon Klaps <[email protected]>
Co-authored-by: Sameesh Kher <[email protected]>
Co-authored-by: Simon Pearce <[email protected]>
Co-authored-by: Luca Beltrame <[email protected]>
Co-authored-by: Rayan Hassaïne <[email protected]>
Co-authored-by: Nicolas Vannieuwkerke <[email protected]>
Co-authored-by: Friederike Hanssen <[email protected]>
Co-authored-by: Adrien Coulier <[email protected]>
Co-authored-by: Georgia Kesisoglou <[email protected]>
Co-authored-by: Jose Espinosa-Carrasco <[email protected]>
Co-authored-by: HD Yi <[email protected]>
Co-authored-by: Dongze He <[email protected]>
Co-authored-by: Dongze He <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jinn <[email protected]>
Co-authored-by: ra25wog <[email protected]>
Co-authored-by: Jonathan Manning <[email protected]>
Co-authored-by: James A. Fellows Yates <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.